package org.yecq.tradedata.algorithm;

/**
 * 常用算法
 *
 * @author yecq
 */
class CommonAlgo {

    // 求均方差，按总体
    public static double getStandardDeviation(double[] values) {
        // 求平均值
        double avg = 0.;
        for (double v : values) {
            avg += v;
        }
        avg /= values.length;

        // 求平方和
        double result = 0.;
        for (double v : values) {
            result += Math.pow(v - avg, 2);
        }

        return Math.sqrt(result / values.length);
    }

    // 求均方差，按样本，分母-1
    public static double getStandardDeviation1(double[] values) {
        // 求平均值
        double avg = 0.;
        for (double v : values) {
            avg += v;
        }
        avg /= values.length;

        // 求平方和
        double result = 0.;
        for (double v : values) {
            result += Math.pow(v - avg, 2);
        }

        return Math.sqrt(result / (values.length - 1));
    }
}
